4D Chart v13

Créer des graphes à partir d'enregistrements (exemples)

Accueil

 
4D Chart v13
Créer des graphes à partir d'enregistrements (exemples)

Créer des graphes à partir d'enregistrements (exemples)  


 

 

Cette section propose des exemples pratiques de création de graphes à l'aide des commandes et fonctions de 4D Chart, à partir des enregistrements contenus dans la base de données.

Si vous souhaitez créer des graphes par programmation à partir de données placées dans des tableaux, reportez-vous à la section Créer des graphes à partir de tableaux (exemples).

Les exemples suivants contiennent des exemples de création de graphes à deux et trois dimensions, en utilisant les fonctions ch_Selection vers graphe et ch_Donnees vers graphe.

Pour chaque exemple, vous trouverez :

  • Une description de la situation prise comme exemple,
  • La structure de la base de données de l’exemple,
  • Un graphe créé par méthode avec des données de l’exemple,
  • Le code utilisé pour créer le graphe de l’exemple.

Supposons que vous possédiez une société d’édition de logiciels avec des clients dans divers secteurs : gouvernement, éducation, détail. Votre base de données suit les clients et les ventes.
Pour assurer le suivi de votre base de clientèle afin de déterminer votre politique produits et marketing, vous voulez savoir combien de logiciels ont été vendus aux clients de chaque secteur.

La table a été simplifiée pour l’exemple.

Avec 4D Chart, vous produisez le graphe suivant qui illustre le pourcentage de chaque secteur par rapport aux ventes totales.

Voici le code de la méthode PROFIL CLIENT, utilisée pour créer le graphe exemple.

  `Méthode : PROFIL CLIENT
  `Catégories : Type de client (groupé), Valeurs : Nombre d’unités achetées
 C_ENTIER LONG($Gauche;$Haut;$Droite;$Bas)
 C_ENTIER LONG($Gauche2;$Haut2;$Droite2;$Bas2)
 C_ENTIER LONG($Zone;$Chart;$Titre;$Position)
  `Générer la sélection des enregistrements à représenter
 TOUT SELECTIONNER([DonnéesClients])
 
  `Tableau des champs contenant les données Valeurs
  `Le nombre de catégories dans ce tableau est égal au nombre de séries
 TABLEAU ENTIER LONG($mesRub;1)
 $mesRub{1}:=Champ(->[DonnéesClients]NbreUnités)
 
  `Ouvrir une fenêtre externe pour afficher le graphe
 $Zone:=Creer fenetre externe(2;40;550;400;8;"Mon graphe";"_4D Chart")
 
  `Créer un graphe en secteurs
 $Chart:=ch_Selection vers graphe($Zone;6;1;1;Table(->[DonnéesClients]);2;$mesRub)
 
  `Définir la position de la légende (en bas, horizontale)
 ch_FIXER ATTRIBUTS LEGENDE($Zone;$Chart;1;0;0;0;8;0;0)
 
  `Ajouter un titre de graphe dans l’angle supérieur gauche
 $Titre:=ch_Creer texte($Zone;1;1;210;3;"Distribution client par secteur")
 
  `Formater le titre du graphe (Palatino, 14 points, Gras, Centré, Noir)
 ch_FIXER TEXTE($Zone;$Titre;ch_Numero de police("Palatino");14;
 1;ch_Index vers couleur(16);1)
 
  `Obtenir la limite de zone pour centrer les objets dans la zone
 ch_LIMITES ZONE($Zone;1;$Gauche;$Haut;$Droite;$Bas)
 
  `Centrer le graphe
 ch_LIRE LIMITES($Zone;$Chart;$Gauche2;$Haut2;$Droite2;$Bas2)
 $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2
 ch_DEPLACER($Zone;$Chart;$Position;$Haut2)
 
  `Centrer le titre
 ch_LIRE LIMITES($Zone;$Titre;$Gauche2;$Haut2;$Droite2;$Bas2)
 $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2
 ch_DEPLACER($Zone;$Titre;$Position;$Haut2)
 
  `Déplacer le graphe de 9 points vers le bas, afin qu’il apparaisse au-dessous du titre
 ch_LIRE LIMITES($Zone;$Chart;$Gauche;$Haut;$Droite;$Bas)
 ch_DEPLACER($Zone;$Chart;$Gauche;$Haut+9)

Supposons que, désireux d’acheter une nouvelle voiture, vous utilisiez une base de données pour faire votre choix. Votre dernière liste comprend cinq voitures dont vous voulez comparer le coût dans trois domaines : carte grise, assurance et maintenance.

La structure de votre base de données est la suivante :

Pour analyser les informations recueillies, vous décidez de les représenter dans un graphe à trois dimensions. A l’aide de 4D Chart, vous produisez le graphe suivant :

Ce graphe a été créé avec la méthode GRAPH CARS. Cette méthode utilise la commande ch_Selection vers graphe. Lorsque vous utilisez ch_Selection vers graphe, vous lui transmettez un tableau de champs. Les noms des champs deviennent les noms de séries et les valeurs contenues dans les champs sont représentées sur l’axe des valeurs. Dans cet exemple, les champs CarteGrise, Assurance et Maintenance ont été utilisés pour les séries et les valeurs.
Voici le code de la méthode GRAPH CARS.

  `Méthode : GRAPH CARS
  `Catégories : Type de voiture, Séries : Catégories de dépenses, Valeurs : Dépense en francs
 
 C_ENTIER LONG($Gauche;$Haut;$Droite;$Bas)
 C_ENTIER LONG(Zone;$Chart;$Titre;$Position;$i)
 C_ENTIER LONG($Gauche2;$Haut2;$Droite2;$Bas2)
  `Générer la sélection des enregistrements à représenter graphiquement
 TOUT SELECTIONNER([Dépenses])
 TRIER([Dépenses];[Dépenses]Coût;>)
 
  `Remplir le tableau des enregistrements pour les données séries et valeurs
 TABLEAU ENTIER LONG($mesRub;3)
 $mesRub{1}:=Champ(->[Dépenses]CarteGrise)
 $mesRub{2}:=Champ(->[Dépenses]Maintenance)
 $mesRub{3}:=Champ(->[Dépenses]Assurance)
 
  `Cacher les éléments d’interface
 ch_FIXER AFFICHAGE(Zone;1;0) `Cacher les menus
 ch_FIXER AFFICHAGE(Zone;2;0) `Cacher les outils graphiques
 ch_FIXER AFFICHAGE(Zone;3;0) `Cacher les outils de tracé
 ch_FIXER AFFICHAGE(Zone;6;0) `Cacher les barres de défilement
 ch_FIXER AFFICHAGE(Zone;9;0) `Cacher les règles
 
  `Créer un graphe en colonnes
 $Chart:=ch_Selection vers graphe(Zone;100;2;1;Table(->[Dépenses]);1;$mesRub)
 
  `Fixer l’échelle
 ch_FIXER ECHELLE DE REELS(Zone;$Chart;0;0;0;0;0;3000;500;100)
 
  `Ne pas afficher la légende
 ch_FIXER ATTRIBUTS LEGENDE(Zone;$Chart;0;0;-1;-1;0;0;0)
 
  `Ajouter les titres du graphe
 ch_FIXER TITRE(Zone;$Chart;0;3;0;"Modèle")
 ch_FIXER TITRE(Zone;$Chart;1;0;0;"")
  `Ne pas afficher
 ch_FIXER TITRE(Zone;$Chart;2;2;3;"Dépense (en francs)")
 
  `Ajouter un titre dans l’angle supérieur gauche
 $Titre:=ch_Creer texte(Zone;1;1;300;3;"Rapport annuel")
  `Formater le titre (Palatino, 14 points, Gras, Centré, Noir)
 $Couleur:=ch_Index vers couleur(16)
 $Police:=ch_Numero de police("Palatino")
 ch_FIXER TEXTE(Zone;$Titre;$Police;14;1;$Couleur;1)
  `Définir vert comme couleur 1ère série
 $Couleur:=ch_Index vers couleur(10)
 ch_FIXER TRAMAGE GRAPHE(Zone;$Chart;8;100;3;$Couleur)
 
  `Définir jaune comme couleur 2e série
 $Couleur:=ch_Index vers couleur(2)
 ch_FIXER TRAMAGE GRAPHE(Zone;$Chart;8;200;3;$Couleur)
 
  `Définir rouge comme couleur 3e série
 $Couleur:=ch_Index vers couleur(4)
 ch_FIXER TRAMAGE GRAPHE(Zone;$Chart;8;300;3;$Couleur)
  `Définir les attributs de tramage pour les rectangles du tracé
 $Couleur:=ch_Index vers couleur(8)
 Boucle($i;1;3)
    ch_FIXER TRAMAGE GRAPHE(Zone;$Chart;1;$i;5;$Couleur)
 Fin de boucle
 
  `Définir les libellés des attributs de texte (Palatino, 9 points, gras italique)
 $Police:=ch_Numero de police("Palatino")
 Boucle($i;0;2)
    ch_FIXER TEXTE GRAPHE(Zone;$Chart;4;$i;$Police;9;3;-1)
 Fin de boucle
 
  `Définir les attributs pour les titres (Palatino, 12 points, gras)
 $Police:=ch_Numero de police("Palatino")
 Boucle($i;0;2)
    ch_FIXER TEXTE GRAPHE(Zone;$Chart;5;$i;$Police;14;1;-1)
 Fin de boucle
 
  `Définir les dimensions de zone pour le centrage
 ch_LIMITES ZONE(Zone;1;$Gauche;$Haut;$Droite;$Bas)
 
  `Centrer le graphe
 ch_LIRE LIMITES(Zone;$Chart;$Gauche2;$Haut2;$Droite2;$Bas2)
 $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2
 ch_DEPLACER(Zone;$Chart;$Position;$Haut2)
 
  `Centrer le titre
 ch_LIRE LIMITES(Zone;$Titre;$Gauche2;$Haut2;$Droite2;$Bas2)
 $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2
 ch_DEPLACER(Zone;$Titre;$Position;$Haut2)
  `Déplacer le graphe de 9 points vers le bas
 ch_LIRE LIMITES(Zone;$Chart;$Gauche;$Haut;$Droite;$Bas)
 ch_DEPLACER(Zone;$Chart;$Gauche;$Haut+9)

Supposons que, Directeur régional d’un programme éducatif, vous vouliez comparer les scores de tests standardisés des élèves de chaque département dans votre région et à différentes dates de test.
Votre base de données contient les scores des élèves de votre région, avec indication de la date du test et du département de résidence.

En utilisant 4D Chart, créez le graphe suivant :

Ce graphe a été créé par la méthode GRAPH 2D SCORES. Voici le code de cette méthode :

  `Méthode : GRAPH 2D SCORES
  `Catégories : Dates des tests, Séries : Départements, Valeurs : Scores
 
 C_ENTIER LONG($Gauche;$Haut;$Droite;$Bas)
 C_ENTIER LONG($Gauche2;$Haut2;$Droite2;$Bas2)
 C_ENTIER LONG(Zone;$Chart;$Titre;$Position;$Score;$Couleur;$Police;$Rect)
 
 TOUT SELECTIONNER([Scores])
 TRIER([Scores];[Scores]Date Test;>)
 
  `Cacher les éléments d’interface
 ch_FIXER AFFICHAGE(Zone;1;0) `Cacher les menus
 ch_FIXER AFFICHAGE(Zone;2;0) `Cacher les outils graphiques
 ch_FIXER AFFICHAGE(Zone;3;0) `Cacher les outils de tracé
 ch_FIXER AFFICHAGE(Zone;9;0) `Cacher les règles
 
  `Créer un graphe en colonnes 2D
 $Chart:=ch_Donnees vers graphe(Zone;2;1;1;1;Table([Scores]);2;4;3)
 
  `Le transformer en graphe horizontal (à barres)
 TABLEAU ENTIER LONG($aOptions;4)
 $aOptions{1}:=1 `Orientation : horizontale
 $aOptions{2}:=0 `Non empilé
 $aOptions{3}:=0 `Pas de chevauchement
 $aOptions{4}:=50 `Intervalle = 50%
 ch_FIXER OPTIONS(Zone;$Chart;$aOptions)
 
  `Montrer les titres des axes
 ch_FIXER TITRE(Zone;$Chart;0;2;3;"Date des tests")
 ch_FIXER TITRE(Zone;$Chart;2;3;0;"Score moyen (en points)")
 
  `Formater le titre de l’axe des éléments (Palatino, Vert, Gras, 12 points)
 $Couleur:=ch_Index vers couleur(9)
 $Police:=ch_Numero de police("Palatino")
 ch_FIXER TEXTE GRAPHE(Zone;$Chart;5;0;$Police;12;1;$Couleur)
 
  `Formater le titre de l’axe des valeurs (Helvetica, Rouge, Gras Italique, 12 points)
 $Couleur:=ch_Index vers couleur(4)
 $Police:=ch_Numero de police("Helvetica")
 ch_FIXER TEXTE GRAPHE(Zone;$Chart;5;2;$Police;12;3;$Couleur)
 
  `Définir la position de la légende en bas au centre, orientation horizontale
 ch_FIXER ATTRIBUTS LEGENDE(Zone;$Chart;1;0;0;0;8;0;0)
 
  `Ajouter un titre de graphe dans l’angle supérieur gauche
 $Titre:=ch_Creer texte(Zone;1;1;350;3;"Scores en fonction des départements")
  `Formater le titre du graphe (Geneva, 14 points, Gras, Centré, Bleu)
 $Couleur:=ch_Index vers couleur(7)
 $Police:=ch_Numero de police("Geneva")
 ch_FIXER TEXTE(Zone;$Titre;$Police;14;1;$Couleur;1)
 
  `Obtenir les dimensions de la fenêtre à utiliser pour le centrage
 ch_LIMITES ZONE(Zone;1;$Gauche;$Haut;$Droite;$Bas)
 
  `Redimensionner le graphe à la taille de la fenêtre moins 50 points
 ch_MODIFIER TAILLE(Zone;$Chart;$Droite-50;$Bas-50)
 
  `Centrer le graphe horizontalement
 ch_LIRE LIMITES(Zone;$Chart;$Gauche2;$Haut2;$Droite2;$Bas2)
 $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2
 ch_DEPLACER(Zone;$Chart;$Position;$Haut2)
 
  `Centrer le titre horizontalement
 ch_LIRE LIMITES(Zone;$Titre;$Gauche2;$Haut2;$Droite2;$Bas2)
 $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2
 ch_DEPLACER(Zone;$Titre;$Position;$Haut2)
 
  `Déplacer le graphe de 10 points vers le bas à partir du titre
 ch_LIRE LIMITES(Zone;$Chart;$Gauche;$Haut;$Droite;$Bas)
 ch_DEPLACER(Zone;$Chart;$Gauche;$Haut+10)
 
  `Encadrer le graphe et le titre d’un rectangle gris
 $Rect:=ch_Creer rectangle(Zone;$Gauche-2;$Haut2-2;$Droite+2;$Bas+2+10;0)
 ch_FIXER TRAMAGE(Zone;$Rect;3;ch_Index vers couleur(13))
 ch_FIXER TRAIT(Zone;$Rect;3;ch_Index vers couleur(15);1)
 
  `Centrer tous les objets verticalement
 ch_LIMITES ZONE(Zone;1;$Gauche;$Haut;$Droite;$Bas)
 ch_LIRE LIMITES(Zone;-1;$Gauche2;$Haut2;$Droite2;$Bas2)
 $Position:=(($Bas-$Haut)-($Bas2-$Haut2))/2
 ch_DEPLACER(Zone;-1;$Gauche2;$Position)
 
  `Envoyer le rectangle à l’arrière
 ch_SELECTIONNER(Zone;-1;0) `Désélectionner tout
 ch_SELECTIONNER(Zone;$Rect;1) `Sélectionner le rectangle
 ch_EXECUTER MENU(Zone;24002) `Envoyer à l’arrière
 ch_SELECTIONNER(Zone;-1;0) `Désélectionner tout

Supposons que vous vouliez comparer les performances des actions de votre société à d’autres. Vous pourriez enregistrer la valeur de clôture quotidienne de l’action de chaque société dans une base de données 4D. Dans la base de données exemple, les valeurs des actions sont enregistrées sous la forme de moyennes mensuelles.

Le graphe suivant compare la valeur de Chimie Durand à la moyenne de l’industrie. Les données du graphe proviennent directement de la base de données, sans aucune manipulation.

La méthode GRAPH STOCKS génère le graphe en utilisant des valeurs de champs tirées directement de la base de données. Comme ces valeurs constituent déjà des moyennes, aucun calcul supplémentaire n’est nécessaire. Si vous enregistriez les valeurs quotidiennement, vous devriez calculer les moyennes mensuelles, les stocker dans un tableau, puis créer le graphe à l’aide de la fonction ch_Tableaux vers graphe.

Pour consulter un exemple de calcul de moyennes de valeurs mensuelles, reportez-vous à la section Créer des graphes à partir de tableaux (exemples). Voici le code de la méthode GRAPH STOCKS :

  `Méthode : GRAPH STOCKS
  `Catégories : Mois de l’année, Séries : Société et indice industriel, Valeurs : Prix moyen de l’action
 
 C_ENTIER LONG($Gauche;$Haut;$Droite;$Bas)
 C_ENTIER LONG($Gauche2;$Haut2;$Droite2;$Bas2)
 C_ENTIER LONG($Zone;$Chart;$Titre;$Position;$Police;$Couleur)
 
  `Générer la sélection des enregistrements à tracer
 TOUT SELECTIONNER([RapportBoursier])
 
  `Ouvrir une fenêtre externe pour afficher le graphe
 $Zone:=Creer fenetre externe(2;40;550;400;8;"Mon graphe";"_4D Chart")
 
  `Créer un graphe linéaire 3D
 $Chart:=ch_Donnees vers graphe($Zone;101;2;1;1;Table([RapportBoursier]);2;1;3)
 
  `Définir la rotation et l’élévation du graphe à 1 degré chacune
 ch_FIXER VUE 3D($Zone;$Chart;1;1)
 
  `Définir les couleurs des séries (Vert, Rouge)
 ch_FIXER TRAMAGE GRAPHE($Zone;$Chart;8;100;3;ch_Index vers couleur(10))
 ch_FIXER TRAMAGE GRAPHE($Zone;$Chart;8;200;3;ch_Index vers couleur(4))
 
  `Montrer les libellés des axes
 ch_FIXER LIBELLE($Zone;$Chart;2;3;0;"### E")
 ch_FIXER LIBELLE($Zone;$Chart;1;0;0;"")
  `Cacher ces libellés
 ch_FIXER LIBELLE($Zone;$Chart;0;3;3;"##/##/##")
 
  `Ajouter les titres des axes des élément et des valeurs
 ch_FIXER TITRE($Zone;$Chart;2;2;3;"Moyenne des cours en euros")
 ch_FIXER TITRE($Zone;$Chart;0;3;0;"Date")
 
  `Définir la position de la légende en haut au centre, orientation horizontale
 ch_FIXER ATTRIBUTS LEGENDE($Zone;$Chart;1;0;0;0;7;0;0)
 
  `Ajouter un titre de graphe dans l’angle supérieur gauche
 $Titre:=ch_Creer texte($Zone;1;1;350;3;"Performance de la société/Moyenne du secteur")
 
  `Formater le titre du graphe (Palatino, 14 points, Gras, Centré, Bleu)
 $Couleur:=ch_Index vers couleur(7)
 $Police:=ch_Numero de police("Palatino")
 ch_FIXER TEXTE($Zone;$Titre;$Police;14;1;$Couleur;1)
 
  `Obtenir la limite de zone afin de centrer les objets dans la zone
 ch_LIMITES ZONE($Zone;1;$Gauche;$Haut;$Droite;$Bas)
 
  `Centrer le graphe
 ch_LIRE LIMITES($Zone;$Chart;$Gauche2;$Haut2;$Droite2;$Bas2)
 $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2
 ch_DEPLACER($Zone;$Chart;$Position;$Haut2)
 
  `Centrer le titre du graphe
 ch_LIRE LIMITES($Zone;$Titre;$Gauche2;$Haut2;$Droite2;$Bas2)
 $Position:=(($Droite-$Gauche)-($Droite2-$Gauche2))/2
 ch_DEPLACER($Zone;$Titre;$Position;$Haut2)
 
  `Déplacer le graphe de 10 points vers le bas
 ch_LIRE LIMITES($Zone;$Chart;$Gauche;$Haut;$Droite;$Bas)
 ch_DEPLACER($Zone;$Chart;$Gauche;$Haut+10)

 
PROPRIÉTÉS 

Produit : 4D Chart
Thème : Introduction au langage
Nom intl. : Creating Graphs from Records in a Database (examples)

 
VOIR AUSSI  

Créer des graphes à partir de tableaux (exemples)